// #include<bits/stdc++.h>
// #define ll long long
// using namespace std;

// ll a, b;
// ll ten[20], f[20];
// ll cnta[20], cntb[20];

// void solve(ll x, ll* cnt)
// {
//     ll num[20] = { 0 };
//     int len = 0;
//     while (x) {
//         num[++len] = x % 10;
//         x = x / 10;
//     }
//     for (int i = len;i >= 1;i--) {
//         for (int j = 0;j <= 9;j++)
//             cnt[j] += f[i - 1] * num[i];

//         for (int j = 0;j < num[i];j++)
//             cnt[j] += ten[i - 1];

//         ll num2 = 0;
//         for (int j = i - 1;j >= 1;j--)
//             num2 = num2 * 10 + num[j];

//         cnt[num[i]] += num2 + 1;
//         cnt[0] -= ten[i - 1];
//     }
// }

// int main()
// {
//     scanf("%lld %lld", &a, &b);
//     ten[0] = 1;
//     for (int i = 1;i <= 15;i++) {
//         f[i] = f[i - 1] * 10 + ten[i - 1];
//         ten[i] = 10 * ten[i - 1];
//     }
//     solve(a - 1, cnta);
//     solve(b, cntb);
//     for (int i = 0;i <= 9;i++)
//         printf("%lld ", cntb[i] - cnta[i]);
// }

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 15;
ll dp[N][N];
int num[N], now;

//lead：真为有前导0
//limit：真受到上界约束
ll dfs(int pos, int sum, bool lead, bool limit) {
    ll ans = 0;
    if (pos == 0) return sum;
    if (!lead && !limit && dp[pos][sum] != -1)  return dp[pos][sum];
    int up = (limit ? num[pos] : 9);//是否受到上界的限制
    for (int i = 0;i <= up;i++) {
        if (i == 0 && lead)
            //含有前导 0 且 当前选择的数字也为 0,继续传递前导 0 状态
            ans += dfs(pos - 1, sum, true, limit && i == up);
        else if (i == now)
            //当前位置与统计数字相同
            ans += dfs(pos - 1, sum + 1, false, limit && i == up);
        else if (i != now)
            ans += dfs(pos - 1, sum, false, limit && i == up);
    }
    if (lead == 0 && limit == 0)//没有前导0且不受上界约束
        dp[pos][sum] = ans;
    return ans;
}
ll solve(ll x) {
    int len = 0;
    while (x) {
        num[++len] = x % 10;
        x /= 10;
    }
    memset(dp, -1, sizeof(dp));
    return dfs(len, 0, true, true);
}
int main() {
    ll a, b;    cin >> a >> b;
    for (int i = 0;i < 10;i++)
        now = i, cout << solve(b) - solve(a - 1) << " ";
    return 0;
}
